#pragma once
#include <nice2d/widgets/boxlayout.h>
#include <nice2d/widgets/button.h>

class MenuStyle : public LayoutStyle
{
    DECLARE_OBJECT(MenuStyle)
public:
    MenuStyle();
    virtual ~MenuStyle();

    std::shared_ptr<ButtonStyle> buttonStyle;
};

class Menu : public VBoxLayout
{
    DECLARE_OBJECT(Menu)
public:
    Menu();
    ~Menu();
public:
    void addItem(const sf::String& item,uint32_t id);
    boost::signals2::signal<void(uint32_t)> clicked;

    void addSeperator();
protected:
    virtual void onStyleChanged()override;
private:
    std::unique_ptr<class MenuData> data;
};
